---
sidebar_position: 10
---

# Задание №9

Варианты заданий:

1. Даны два массива:

   ```cpp
   string states[] = { "Wyoming", "Colorado", "Nevada", "Montana", "Arizona", "Idaho"};
   int pops[] = { 470, 2890, 800, 787, 2718, 944 };
   ```

   На основе этих массивов создайте отображение, в котором ключ – это название американского штата, а значение – количество жителей этого штата  в тысячах из массива pops. Напишите программу: пользователь вводит название штата, а в консоль выводится количество жителей этого штата. Выведите всё содержимое отображения в консоль с помощью функции.

2. В отображении находятся записи о соответствии номеров телефона (7 цифр) и фамилии. Например:

   ```bash
   5671234 Ivanov
   3214567 Petrov
   9871234 Sidorov
   ```

   В массиве  находятся номера телефонов. Например:

   ```cpp
   string mas[4] = { "1112233", "9871234", "5671234", "5556688" };
   ```

   Осуществить поиск фамилий из заданного отображения, соответствующих телефонам из массива mas. Найденные фамилии вывести на консоль. В данном примере:

   ```bash
   Sidorov
   Ivanov
   ```

3. В первом отображении находится информация о зарплате сотрудников. Например:

   ```bash
   Ivanov 45500
   Petrov 37000
   Sidorov 245000
   Petrenko 65000
   Tovalds 91200
   Popov 54600
   Andrienko 35000
   ```

   Во втором отображении принадлежность сотрудников к отделам предприятия. Например:

   ```bash
   Ivanov Research
   Petrov Research
   Sidorov Management
   Petrenko Management
   Tovalds Development
   Popov Research
   Andrienko Sales
   ```

   Необходимо вычислить общий фонд зарплаты и отдельно по отделам. Результат вывести на экран. В данном случае (возможны опечатки):

   ```bash
   Research 137100
   Management 310000
   Development 91200
   Sales 35000
   Overall 573300
   ```

   Примечание: Для решения этой задачи необходимо завести ассоциативный массив (`std::map`), где ключом будет название отдела (строка), а значением – текущая сумма зарплат. В цикле перебирать пары первого отображения, необходимо находить по ключу отдел во втором отображении и прибавлять к имеющейся там (в ассоциативном массиве) сумме только что считанную.

4. Создайте ассоциативный контейнер для хранения имен абонентов и их телефонных номеров. Имена и номера телефонов должны вводиться пользователем. После окончания ввода распечатать имена и телефонные номера абонентов в виде строк: имя абонента – его номер.  Выполнить поиск номера по имени абонента, которое введет пользователь. Удалите найденный номер и имя абонента из отображения. Снова распечатайте отображение. Переделать программу: печатать отображение с помощью функции.

5. Разработайте программу, в которой используется отображение, которое содержит перечень городов и расстояние каждого города от Москвы:

   ```bash
   'Минск': 713,
   'Киев': 856,
   'Санкт-Петербург': 786,
   'Астана': 2748,
   'Нижний Новгород': 421,
   'Владивосток': 9141
   ```

   Найти в отображении ближайший город к Москве и самый дальний и выведите в консоль с пояснением. Распечатать содержимое отображения в консоли, используя функцию.

6. Дано отображение с данными о количестве учащихся в разных классах школы:

   ```bash
   {'1а': 21, '1б':20, '2':25, '3а': 20, '3б': 23, '4а':25, '4б':25, '5а': 26, '5б':25, '6a':19, '6б': 18, '7а':26, '7б':25, '8':25, '9':17, '10': 15, '11’: 14}
   ```

   В программе определить количества учащихся в школе. Распечатать содержимое отображения в консоли, используя функцию.

7. Необходимо объединить два прайс-листа (задаются в виде отображений) с тем условием, что если наименование товара присутствует в обоих прайсах, то в итоговый прайс помещается тот, чья цена выше.

   ```bash
   m1 = {'яблоки': 100, 'груши': 13, 'арбузы': 20, 'картофель': 15, 'алыча': 22}
   m2 = {'яблоки': 150,'груши': 18,'ананасы': 45, 'апельсины': 30, 'киви': 35}
   ```

   Распечатать содержимое отображений в консоли, используя функцию.

8. У вас есть выгрузка оставшегося количества фруктов из базы данных магазинов. Каждое отображение - магазин. Какие-то фрукты есть в разных магазинах, какие-то только в одном. Нужно сделать отображение, в котором ключами будут фрукты, а их количество - значениями. Если фрукт есть в наличии в нескольких магазинах - сложите эти значения.

   ```bash
   Shop1 = { 'банан': 400, 'яблоко': 300, ... }
   Shop2 = { 'банан': 750, 'груша': 20, 'яблоко': 150 ... }
   ```

9. Дано отображение, содержащее сведения о количестве изделий, собранных сборщиками цеха за неделю:

   ```bash
   'Иванов': 123, 'Петров': 89, 'Сидоров': 108, 'Краснов': 132, 'Демин': 99, 'Черепанов': 111
   ```

   Каждая пара содержит поля: фамилия сборщика - количество изделий, собранных им ежедневно в течение недели. Количество записей - произвольное. Сколько всего собрали сборщики цеха за неделю. Распечатать содержимое отображений в консоли, используя функцию.

10. Дано отображение с данными о количестве учащихся в разных классах школы:

    ```bash
    {'1а': 21, '1б':20, '2':25, '3а': 20, '3б': 23, '4а':25, '4б':25, '5а': 26, '5б':25, '6a':19, '6б': 18, '7а':26, '7б':25, '8':25, '9':17, '10': 15, '11’: 14}
    ```

    В программе пользователь вводит год обучения школьников, а консоль выводится количество учащихся заданного года обучения, например:

    ```bash
    Год обучения: 1
    Количество: 41
    ```

    Распечатать содержимое отображения в консоли, используя функцию.
